"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/5/30 8:35
@Description : 
编写一个Python程序，实现以下功能：
创建一个名为employees.json的JSON文件，其中包含以下嵌套结构：
{
    "department": "Engineering",
    "employees": [
        {"name": "Alice", "position": "Manager", "salary": 8000},
        {"name": "Bob", "position": "Developer", "salary": 6000}
    ]
}
- 提示用户输入一名员工的姓名、职位和薪资，并将其添加到employees.json文件中的employees列表中。
- 从employees.json文件中读取所有员工信息，并以格式化的形式打印到控制台
"""
import json

#  1. 添加员工信息   持久化
name = input('请输入员工姓名:')
position = input('请输入员工职位:')
salary = input('请输入员工薪资:')
# 封装数据 dict
emp = {
    'name': name,
    'salary': salary,
    'position': position
}

# 从文件中获取原始数据
with open('employees.json', 'r+', encoding='utf-8') as f:
    emp_data = json.load(f)
    emps = emp_data.get('employees')
    # 添加员工到列表
    emps.append(emp)
    emp_data['employees'] = emps
    emp_data_json = json.dumps(emp_data, ensure_ascii=False, indent=2)
    # 将指针移动到文件开头
    f.seek(0)
    f.write(emp_data_json)

from prettytable import PrettyTable

table = PrettyTable()
table.field_names = ["name", "position", "salary"]
# 以格式化的方式展示员工信息
with open('employees.json', 'r', encoding='utf-8') as f:
    emp_data = json.load(f)
    emps = emp_data.get('employees')
    for emp in emps:
        table.add_row([emp.get('name'), emp.get('position'), emp.get('salary')])
    print(table)

